-
-
Notifications
You must be signed in to change notification settings - Fork 231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use julia-actions/cache
in CI
#1004
Conversation
I've set |
I think generally in SciML it's better to use |
I think that makes sense if you assume developer time has little value |
What is this caching doing? Before and after? |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1004 +/- ##
=======================================
Coverage 86.09% 86.09%
=======================================
Files 11 11
Lines 151 151
=======================================
Hits 130 130
Misses 21 21 ☔ View full report in Codecov by Sentry. |
Bump |
Simply put, it is similar to what DifferentialEquations.jl had but then the complexity is moved inside https://github.com/julia-actions/cache. This allowed |
I said this because at Pluto.jl there was a lot of developer time wasted by this. What would happen there is that about a dozen jobs that took about 20 minutes would be cancelled as soon as one job started to fail. In practice, this was problematic because often most jobs were about 80% done with their execution when they were cancelled. By cancelling, this 80% progress was thrown away. Sometimes, this was no problem because the problem was obvious, but sometimes the problem was not obvious and having more information about which jobs did pass could be very helpful in debugging. |
Looking at the Pluto tests, those tests are quite short and light. In comparison, an OrdinaryDiffEq run SciML/OrdinaryDiffEq.jl#2092 can easily take around 10 hours of compute time, split across jobs, but that's just a lot. Withs the tens of contributors active across SciML, if we're not actively canceling jobs it can take a few hours to get an open machine to start running tests, let alone finish. So fail fast generally makes tests run hours faster because the queue is no longer clogged and it makes them start faster. We're trying to secure more money for more resources but it's not easy to come by.
Does this work for the way we have the groups setup in OrdinaryDiffEq? |
Is there a way to precompile once and then use that for all of the groups? |
I don’t know |
Thanks to Ian Butterworth, `julia-actions/cache` caches `~/.julia/compiled` too (julia-actions/cache#71). Maybe interesting for the SciML ecosystem.
It doesn't look like this made it any faster? https://github.com/SciML/DifferentialEquations.jl/actions/runs/7332505023/job/19966734944?pr=1004#step:4:52 |
Is this incorporated into setup-julia now or something? What's the reason to close? |
The close was unintentional. I was just removing old forks from GitHub. Sorry for the noise |
@thazhemadam will this kind of caching be addressed in the centralization changes? |
Yes, I was planning on having it available as a default, with an option to opt out. |
Thanks to Ian Butterworth,
julia-actions/cache
caches~/.julia/compiled
too (julia-actions/cache#71).Maybe interesting for the SciML ecosystem.